<?php
/**
* 
* ShopWindow Toolset
* 
* Copyright (C) 2008 Digital Window Ltd.
* 
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*
*/


require_once('class.api_client.php');


/**
 * Encapsulates the corresponding API functionality
 *
 */
class api_category extends api_client
{
	var $aCategoryIds =	array(); 	// the ids of categories to be returned



	/**
	 * Gets an array of merchant(s)
	 *
	 * @copyright	DigitalWindow
 	 * @author		Kostas Melas <kostas@digitalwindow.com>
 	 *
	 * @param 	array	 $oParams->aCategoryIds
	 * @return 	array	 of categories
	 */
	function getCategory($oParams)
	{
		// sanity checks
		if ( is_array($oParams->aCategoryIds) && !empty($oParams->aCategoryIds) ) {
			$aCategoryIds = array();
			
			// Build the merchant id array 
			foreach ( $oParams->aCategoryIds as $sKey => $sValue ) {
				// Check not already in array
				if ( !in_array( $sValue, $aCategoryIds ) ) {
					$aCategoryIds[] = $sValue;
				}
			}
		}
		
        $aParams = array('iCategoryId' => $aCategoryIds);

       	// make the SOAP call
        $this->call('getCategory', $aParams);

        $aCategories = array();

        // not empty check
        if ( !empty( $this->oResponse->oCategory ) ) {
	        // re-assign to be keyed by id
	        foreach ( $this->oResponse->oCategory as $oCategory ) {
	 			$aCategories[$oCategory->iId]= $oCategory;
	        }
        }

        # FILTER CATEGORIES
    	$aCategories = $this->filterCategories($aCategories);


        return $aCategories;
	}

} // class


?>